package plp.operor.util;

import plp.expressions1.util.TipoPrimitivo;
import plp.expressions2.expression.Id;
import plp.functional1.util.TipoPolimorfico;

public class IdOperadorUtil {


	private static IdOperadorUtil instance;
	
	public static IdOperadorUtil getInstance() {
		if (instance == null) {
			instance = new IdOperadorUtil();
		}
		return instance;
	}
	
	private IdOperadorUtil() {
	}
	
	public Id completoParaGenerico(String id) {
		String result = "";
		String[] operacao = id.split("<OP>");
		
		for (String op : operacao) {
			if (TipoPrimitivo.valueOf(op) != null ||
					TipoPolimorfico.CURINGA.getNome().equals(op)) {
				result += "_";
			} else {
				result += op;
			}
		}
		
		return new Id(result);
	}
	
}